//
//  ZWTabBar.swift
//  weiboXue
//
//  Created by xue-iOS-work on 16/8/29.
//  Copyright © 2016年 iOS-work. All rights reserved.
//

import UIKit

class ZWTabBar: UITabBar {
    // 定义一个属性接收
    var closeBlock: (()->())?
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    // 初始化UI
    func setupUI() -> Void {
        addSubview(custonBtn)
        backgroundImage=#imageLiteral(resourceName: "tabbar_background")
    }
    // 重新布局
    override func layoutSubviews() {
        // 调用父类
        super.layoutSubviews()
        // 设置当前懒加载的控件
        custonBtn.center = CGPoint(x:center.x, y: frame.height*0.5)
        // 计算没个控件的宽度
        let tabbarW = bounds.width/5
        // 定义一个下表
        var index = 0
        // 遍历
        for subView in subviews {
//            print(subviews)
            // 判断是否为tabbar
            if subView.isKind(of: NSClassFromString("UITabBarButton")!) {
                // 设置宽度
                subView.frame.size.width = tabbarW
                // 计算x
                let tabbarX = CGFloat(index) * tabbarW
                // 设置x
                subView.frame.origin.x = tabbarX
                // 自增下标
                index = index + 1
                if index==2 {
                    index = index + 1
                }
            }
        }
        
        
    }
    // ----中间按钮的监听方法
    @objc private func clickMinBtn() -> Void {
        //执行闭包
        closeBlock?()
    }
    // 自定义中间的视图按钮 通过懒加载
    lazy var custonBtn: UIButton = {
        let btn = UIButton()
        // 按钮的监听事件
        btn.addTarget(self, action: #selector(clickMinBtn), for: .touchUpInside)
        btn.setImage(#imageLiteral(resourceName: "tabbar_compose_icon_add"), for: .normal)
        btn.setImage(#imageLiteral(resourceName: "tabbar_compose_icon_add_highlighted"), for: .highlighted)
        // 设置图片背景颜色
        btn.setBackgroundImage(#imageLiteral(resourceName: "tabbar_compose_button"), for: .normal)
        btn.setBackgroundImage(#imageLiteral(resourceName: "tabbar_compose_button_highlighted"), for: .highlighted)
        btn.sizeToFit()
        return btn
    }()
}
